/*
 * @Author: Roc Yuan
 * @Date: 2020年11月24日11:29:13
 * @LastEditTime: 2020年11月24日11:29:20
 * @Description: vue2 template
 * @FilePath: \roc-cli-vue-template\vue.config.js
 */

const { defineConfig } = require('@vue/cli-service')

const { VUE_APP_ENV, VUE_APP_PROXY, VUE_APP_BASE_API, VUE_APP_PORT } = process.env

const vueCliConfig = {
  transpileDependencies: true,
  publicPath: VUE_APP_ENV === 'production' ? './' : './',
  lintOnSave: true,
  assetsDir: 'assets',
  outputDir: 'dist',
  productionSourceMap: false,
  devServer: {
    host: 'localhost',
    hot: true,
    port: VUE_APP_PORT,
    open: true,
    client: {
      overlay: true,
    },
    // 代理
    proxy: {
      '/api': {
        target: VUE_APP_BASE_API,
        changeOrigin: true,
        ws: false,
        pathRewrite: {
          '^/api': '',
        },
      },
    },
  },
  chainWebpack: (config) => {
    if (VUE_APP_ENV === 'production') {
      config.optimization.minimizer('terser').tap((args) => {
        // 去掉全部 console.*
        args[0].terserOptions.compress.drop_console = true
        // 去掉指定 console.*
        // args[0].terserOptions.compress.pure_funcs = ["console.log"];
        return args
      })
      /*
        打包压缩图片（原始项目本身不启用也不安装，如需启用查看下方说明）
        注意：如需使用图片压缩请手动打开开关，并必须使用cnpm安装插件（因为插件依赖的图片优化器下载地址国内访问不到） `cnpm install -D image-webpack-loader`
      */
      const miniImg = false
      if (miniImg) {
        config.module
          .rule('images')
          .use('image-webpack-loader')
          .loader('image-webpack-loader')
          .options({
            bypassOnDebug: true,
          })
          .end()
      }
    }
  },
}

if (VUE_APP_ENV === 'development') {
  if (VUE_APP_PROXY === 'false') {
    delete vueCliConfig.devServer.proxy
  }
}

module.exports = defineConfig(vueCliConfig)
